package com.bfly.mall.product.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bfly.core.base.entity.BaseEntity;
import com.bfly.mall.product.enums.ProductCommentStatusEnum;
import com.bfly.mall.order.entity.OrderSku;

import java.io.Serializable;
import java.util.List;

/**
 * 产品评论
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/9/15 20:44
 */
@TableName(value = "product_comment",resultMap = "CommentResultMap")
public class ProductComment extends BaseEntity implements Serializable {

    private static final long serialVersionUID = -6689659740527129288L;
    /**
     * 产品ID
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/10/4 9:30
     */
    @TableField("product_id")
    private int productId;

    /**
     * SKU SN
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/10/4 9:30
     */
    @TableField("sn")
    private String sn;

    /**
     * 订单号
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/10/4 9:30
     */
    @TableField("order_no")
    private String orderNo;

    /**
     * 用户ID 或回复者ID
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/10/4 9:30
     */
    @TableField("user_id")
    private int userId;


    /**
     * 昵称 冗余设计
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/11 10:37
     */
    @TableField("nick_name")
    private String nickName;

    /**
     * 头像地址 冗余设计
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/11 10:37
     */
    @TableField("avatar_url")
    private String avatarUrl;

    /**
     * 评论内容
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:45
     */
    private String content;

    /**
     * 评论总星数
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/9/15 20:45
     */
    private float score;

    /**
     * 产品与描述相符度打分
     * @author 长沙商脉科技有限公司
     * @date 2020/12/31 12:39
     */
    @TableField("same_score")
    private float sameScore;

    /**
     * 服务态度打分
     * @author 长沙商脉科技有限公司
     * @date 2020/12/31 12:39
     */
    @TableField("service_score")
    private float serviceScore;

    /**
     * 发货速度打分
     * @author 长沙商脉科技有限公司
     * @date 2020/12/31 12:40
     */
    @TableField("ship_score")
    private float shipScore;


    /**
     * 评论父类ID
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/11 12:13
     */
    @TableField("parent_id")
    private int parentId;

    /**
     * 是否回复
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/5/8 11:20
     */
    @TableField("is_reply")
    private boolean reply;

    /**
     * 是否是顾客留言--区分商户回复和顾客留言
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/5/8 11:22
     */
    @TableField("is_poster")
    private boolean poster;

    /**
     * 子评论集合---一般是管理员的回复
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/10/4 9:34
     */
    @TableField(exist = false)
    private List<ProductComment> children;

    /**
     * 评论相关的订单产品信息
     * @author 长沙商脉科技有限公司
     * @date 2020/10/4 12:07
     */
    @TableField(exist = false)
    private List<OrderSku> skus;

    /**
     * 评论状态
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/4/11 12:12
     * @see ProductCommentStatusEnum
     */
    @TableField("status")
    private int status;

    public float getSameScore() {
        return sameScore;
    }

    public void setSameScore(float sameScore) {
        this.sameScore = sameScore;
    }

    public float getServiceScore() {
        return serviceScore;
    }

    public void setServiceScore(float serviceScore) {
        this.serviceScore = serviceScore;
    }

    public float getShipScore() {
        return shipScore;
    }

    public void setShipScore(float shipScore) {
        this.shipScore = shipScore;
    }

    public List<OrderSku> getSkus() {
        return skus;
    }

    public void setSkus(List<OrderSku> skus) {
        this.skus = skus;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getAvatarUrl() {
        return avatarUrl;
    }

    public void setAvatarUrl(String avatarUrl) {
        this.avatarUrl = avatarUrl;
    }

    public List<ProductComment> getChildren() {
        return children;
    }

    public void setChildren(List<ProductComment> children) {
        this.children = children;
    }

    public int getParentId() {
        return parentId;
    }

    public void setParentId(int parentId) {
        this.parentId = parentId;
    }

    public boolean isReply() {
        return reply;
    }

    public void setReply(boolean reply) {
        this.reply = reply;
    }

    public boolean isPoster() {
        return poster;
    }

    public void setPoster(boolean poster) {
        this.poster = poster;
    }

    public int getProductId() {
        return productId;
    }

    public void setProductId(int productId) {
        this.productId = productId;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public float getScore() {
        return score;
    }

    public void setScore(float score) {
        this.score = score;
    }
}